package com.portal.incurridos.persistence.dao;

import java.util.List;

import com.portal.incurridos.persistence.configuration.Label;
import com.portal.incurridos.persistence.enumeration.StateTransactionEnum;

/**
 * @author Alan Dávila
 * e-mail ustargab@gmail.com
 * date 26/11/2013 23:43:06
 */
public interface LabelDao {

	/**
	 * Get a existing label.
	 * @param label Identifier of required label.
	 * @return Label Object with the information.
	 */
	Label get(final Integer label);
	/**
	 * Create a new label.
	 * @param label Object to create.
	 * @return Object created.
	 */
	Label create(final Label label);
	/**
	 * Update a existing label.
	 * @param label Object to update.
	 * @return State of the operation.
	 */
	StateTransactionEnum update(final Label label);
	/**
	 * Delete a existing object.
	 * @param label Object to delete.
	 * @return State of the operation.
	 */
	StateTransactionEnum delete(final Label label);
	/**
	 * Get all existing labels into the database.
	 * @return List of all existing labels.
	 */
	List<Label> getAll();
}
